const contentTagsService = require('../service/ContentTagsService')
const ResultUtil = require('../utils/ResultUtil')

/**
 * 业务控制层： 查询内容标签列表
 * @param {*} req 
 * @param {*} res 
 */
const tagsList = async (req, res) => {
  const tags = req.query
  let tagsList = null
  try {
    tagsList = await contentTagsService.selecTagsList(tags)
    res.send(ResultUtil.success(200).add(tagsList))
  } catch (e) {
    res.send(ResultUtil.error(500, e.message))
  }
}

/**
 * 业务控制层： 根据内容标签id查询内容标签信息
 * @param {*} req 
 * @param {*} res 
 */
const selectTagsById = async (req, res) => {
  const { id } = req.params
  console.log(req.params)
  try {
    const tags = await contentTagsService.selectTagsById(id)
    res.send(ResultUtil.success(200, tags))
  } catch (error) {
    res.send(ResultUtil.error(500, error.message))
  }
}

/**
 * 业务控制层： 添加内容标签
 * @param {*} req 
 * @param {*} res 
 */
const addTags = async (req, res) => {
  const tags = req.body
  tags.createdAt = new Date()
  console.log(tags)
  try {
    await contentTagsService.addTags(tags)
    res.send(ResultUtil.success(201, true))
  } catch (e) {
    res.send(ResultUtil.error(500, e.message))
  }
}

/**
 * 业务控制层： 更新内容标签
 * @param {*} req 
 * @param {*} res 
 */
const updateTags = async (req, res) => {
  const tags = req.body
  tags.updatedAt = new Date()
  try {
    await contentTagsService.updateTags(tags)
    res.send(ResultUtil.success(208, true))
  } catch (e) {
    res.send(ResultUtil.error(500, e.message))
  }
}

/**
 * 业务控制层： 删除内容标签
 * @param {*} req 
 * @param {*} res 
 */
const deleteTags = async (req, res) => {
  const { id } = req.body
  console.log(id)
  try {
    await contentTagsService.deleteTags(id)
    res.send(ResultUtil.success(204, true))
  } catch (e) {
    res.send(ResultUtil.error(500, e.message))
  }
}

module.exports = {
  tagsList,
  addTags,
  updateTags,
  deleteTags,
  selectTagsById
}